const util = require('../../utils/util')
const db = wx.cloud.database()
const join = db.collection('join')

Page({

  data: {
    activityId: '',
    name: '',
    activity: [],
    templateId: 'AV2p769pqEs3rAIBlrvB4CkwbgbVq-P_6T4b7XWiAlk',
    subscribeMessageResult: '',
    requestSubscribeMessageResult: '',
    wxacodeSrc: '',
    wxacodeResult: '',
    showClearWXACodeCache: false,

  },

  onLoad(options) {
    console.log(options)
    this.setData({
      activityId: options.activityid,
      name: options.name,
    })
    join.where({
      activityid: options.activityid
    }).get().then(res => {
      console.log(res.data)
      this.setData({
        activity: res.data[0]
      })
    })
  },

  async getSubscribeMessageTemplate() {
    try {
      const {
        result
      } = await wx.cloud.callFunction({
        name: 'openapi',
        data: {
          action: 'requestSubscribeMessage',
        },
      })

      const templateId = result

      console.warn('[云函数] [openapi] 获取订阅消息模板 调用成功：', templateId)
      this.setData({
        templateId,
      })
    } catch (err) {
      wx.showToast({
        icon: 'none',
        title: '调用失败',
      })
      console.error('[云函数] [openapi] 获取订阅消息模板 调用失败：', err)
    }
  },

  async requestSubscribeMessage() {
    const templateId = this.data.templateId
    // const templateId = 'AV2p769pqEs3rAIBlrvB4CkwbgbVq-P_6T4b7XWiAlk'

    if (!templateId) {
      wx.showModal({
        title: '发送失败',
        content: '请先获取模板 ID',
        showCancel: false,
      })
    }

    wx.requestSubscribeMessage({
      tmplIds: [templateId],
      success: (res) => {
        console.log(res)
        if (res[templateId] === 'accept') {
          this.setData({
            requestSubscribeMessageResult: '成功',
          })
          this.sendSubscribeMessage('success')
          wx.navigateBack({
            delta:1
          })
        } else {
          this.setData({
            requestSubscribeMessageResult: `失败（${res[templateId]}）`,
          })
        }
      },
      fail: (err) => {
        this.setData({
          requestSubscribeMessageResult: `失败（${JSON.stringify(err)}）`,
        })
      },
    })
  },

  sendSubscribeMessage(e) {
    console.log(e)
    console.log(this.data.activity)
    this.setData({
      subscribeMessageResult: '',
    })

    wx.cloud.callFunction({
      name: 'openapi',
      data: {
        action: 'sendSubscribeMessage',
        templateId: this.data.templateId,
        name: this.data.name,
        time: util.formatTime(this.data.activity.price),
        title: this.data.activity.title,
        others: this.data.activity.others,
        local: this.data.activity.local,
      },
      success: res => {
        console.warn('[云函数] [openapi] subscribeMessage.send 调用成功：', res)
        wx.showModal({
          title: '发送成功',
          content: '请返回微信主界面查看',
          showCancel: false,
        })
        // wx.showToast({
        //   title: '发送成功，请返回微信主界面查看',
        // })
        this.setData({
          subscribeMessageResult: JSON.stringify(res.result)
        })
      },
      fail: err => {
        wx.showToast({
          icon: 'none',
          title: '调用失败',
        })
        console.error('[云函数] [openapi] subscribeMessage.send 调用失败：', err)
      }
    })
  },

  // submitSubscribeMessageForm(e) {
  //   this.setData({
  //     subscribeMessageResult: '',
  //   })

  //   wx.cloud.callFunction({
  //     name: 'openapi',
  //     data: {
  //       action: 'sendSubscribeMessage',
  //       formId: e.detail.formId,
  //     },
  //     success: res => {
  //       console.warn('[云函数] [openapi] subscribeMessage.send 调用成功：', res)
  //       wx.showModal({
  //         title: '发送成功',
  //         content: '请返回微信主界面查看',
  //         showCancel: false,
  //       })
  //       wx.showToast({
  //         title: '发送成功，请返回微信主界面查看',
  //       })
  //       this.setData({
  //         templateMessageResult: JSON.stringify(res.result)
  //       })
  //     },
  //     fail: err => {
  //       wx.showToast({
  //         icon: 'none',
  //         title: '调用失败',
  //       })
  //       console.error('[云函数] [openapi] templateMessage.send 调用失败：', err)
  //     }
  //   })
  // },

  // onGetWXACode() {

  //   this.setData({
  //     wxacodeSrc: '',
  //     wxacodeResult: '',
  //     showClearWXACodeCache: false,
  //   })

  //   // 此处为演示，将使用 localStorage 缓存，正常开发中文件 ID 应存在数据库中
  //   const fileID = wx.getStorageSync('wxacodeCloudID')

  //   if (fileID) {
  //     // 有云文件 ID 缓存，直接使用该 ID
  //     // 如需清除缓存，选择菜单栏中的 “工具 -> 清除缓存 -> 清除数据缓存”，或在 Storage 面板中删掉相应的 key
  //     this.setData({
  //       wxacodeSrc: fileID,
  //       wxacodeResult: `从本地缓存中取得了小程序码的云文件 ID`,
  //       showClearWXACodeCache: true,
  //     })
  //     console.log(`从本地缓存中取得了小程序码的云文件 ID：${fileID}`)
  //   } else {
  //     wx.cloud.callFunction({
  //       name: 'openapi',
  //       data: {
  //         action: 'getWXACode',
  //       },
  //       success: res => {
  //         console.warn('[云函数] [openapi] wxacode.get 调用成功：', res)
  //         wx.showToast({
  //           title: '调用成功',
  //         })
  //         this.setData({
  //           wxacodeSrc: res.result,
  //           wxacodeResult: `云函数获取二维码成功`,
  //           showClearWXACodeCache: true,
  //         })
  //         wx.setStorageSync('wxacodeCloudID', res.result)
  //       },
  //       fail: err => {
  //         wx.showToast({
  //           icon: 'none',
  //           title: '调用失败',
  //         })
  //         console.error('[云函数] [openapi] wxacode.get 调用失败：', err)
  //       }
  //     })
  //   }
  // },

  // clearWXACodeCache() {
  //   wx.removeStorageSync('wxacodeCloudID')

  //   this.setData({
  //     wxacodeSrc: '',
  //     wxacodeResult: '',
  //     showClearWXACodeCache: false,
  //   })

  //   wx.showToast({
  //     title: '清除成功',
  //   })
  // },

})